home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 001-100 / 001-025 / 018 / xlisp1.6 / trace.lsp < prev    next >
Lisp/Scheme  |  1995-03-17  |  656b  |  22 lines

  1. (setq *tracelist* nil)
  2.  
  3. (defun evalhookfcn (expr env &aux val)
  4.        (if (and (consp expr) (member (car expr) *tracelist*))
  5.            (progn (princ ">>> ") (print expr)
  6.                   (setq val (evalhook expr evalhookfcn nil env))
  7.                   (princ "<<< ") (print val))
  8.            (evalhook expr evalhookfcn nil env)))
  9.  
  10. (defun trace (fun)
  11.        (if (not (member fun *tracelist*))
  12.        (progn (setq *tracelist* (cons fun *tracelist*))
  13.                   (setq *evalhook* evalhookfcn)))
  14.        *tracelist*)
  15.  
  16. (defun untrace (fun)
  17.        (if (null (setq *tracelist* (delete fun *tracelist*)))
  18.            (setq *evalhook* nil))
  19.        *tracelist*)
  20.  
  21.  
  22.